草庐IT

c++ - 将 std::vector 复制到 qvector

全部标签

c++ - C/C++ - Windows - 如何跟踪 HWND 上下文数据

在Windows中,假设您打开了同一窗口类的多个窗口(HWND)。您如何跟踪窗口过程中的上下文数据,例如,当用户尝试在窗口2中键入内容时,窗口1不会被修改?CreateWindow()直到WndProc()被多次调用后才返回,因此您不能简单地将生成的HWND设置为上下文数据并在WndProc()中进行查找;您确实需要在WndProc()中设置它。除了窗口创建消息外,WndProc()不直接将上下文信息传递给它,但不幸的是,窗口创建消息并不是传递给WndProc()的第一条消息。不,我发现诸如WM_SIZE、WM_NCSIZE之类的东西在我看到WM_CREATE之前就已通过。将HWND存

c - 可执行路径

我需要找到我的程序运行的路径。使用argv[0]似乎不起作用,因为程序必须在Windows控制台上运行,例如C:\>playerparameter1parameter2而我只能在argv[0]上获得播放器.我怎样才能做到这一点? 最佳答案 您可以使用Windows的GetModuleFileName函数通过将hModule参数设置为NULL来获取可执行文件的路径。 关于c-可执行路径,我们在StackOverflow上找到一个类似的问题: https://st

c - c中的全局结构和多线程

谁能解释一下这段代码中的编译错误:#include"common.h"typedefstructnodeData{intprocid;unsignedshortlocalport;DWORDLIFETIME;DWORDHELLOTIMEOUT;DWORDMAXTIME;}nodeData;intlistenerThread(){if(!bindSocket(listenSocket,nodeData.localport)){closesocket(listenSocket);WSACleanup();exit(-1);}//morecodegoeshere}intmain(intarg

c++ - 进程 ID 和进程名称

我正在创建一个基本上扫描系统以查看特定进程是否正在运行的Windows程序。我有进程名称(AcroRd32.exe),没有别的。据我所知,最简单的方法是使用CreateToolhelp32Snapshot创建所有进程的快照,然后遍历每个进程以查找进程名称。我的应用程序以高性能为中心。那么有没有更好更有效的方法来做到这一点。应用程序每隔几秒收集一次快照。在快照中迭代100个进程似乎效率不高。是否有直接的API可以通过进程名称找到进程(并通过名称检索进程句柄或ID)?我进行了广泛的搜索,但运气不佳。有人试过这个吗? 最佳答案 扫描进程的

c++ - 从 windows 可执行文件复制机器代码并在 linux 上运行

我在Windows上复制了一个函数的机器代码。例如:voidfunc(){printf("hello");}在上述情况下,我将复制func()的十六进制代码段数据和printf()的十六进制代码数据以及其他依赖项和数据并重新链接它在运行linux的不同机器上,如果正确重新链接,是否可以在linux机器上运行代码?如果是这样,会不会有许可问题?(合法吗?)附言这个问题是关于分布式系统的问题。 最佳答案 有一个wineprogram(andproject)这不是模拟器。它将从windows获取exe文件并直接在linux中运行。大多数使

c++ - 将 .a 文件转换为 .dll

这个问题在某处肯定有答案,但我找不到。我写Java已经十多年了,我的C经验是在Unix上,所以我在这里有点直截了当。根据我的Unix经验,其他人编写了makefile并且它可以正常工作。我已经从feep下载了libtar-1.2.11的C源代码,并从cygwin内部运行了make。这创建了一个.a文件和一个.exe文件。EXE文件似乎本质上是tar以在Windows上运行,但我想要的是让库在我自己的代码中读取和处理文件。如果我没记错的话,那些应该在.a文件(存档??)中,并且需要将其链接到我可以从我的C++程序中使用的库中。所以我正在寻找一种方法来做到这一点。我正在编写一个将使用.tg

可以仅使用 C 来利用 Windows API 吗?

我正在自学C(来自Java)。我非常欣赏这门语言,我学习它的主要原因之一是我可以利用Java内置的JNI功能在必要时编写native代码。我的问题主要是关于WindowsAPI。我可以仅使用C来使用API的功能和特性吗?WindowsAPI是否与纯C代码兼容,或者它是否包含只能由C++代码使用的类等?此外,如果我在Windows机器上将共享库编译为(lib.slNOTlib.dll),它可以在另一台机器(Mac/Linux)上运行吗? 最佳答案 WindowsAPI(又名Win32API)是一个纯C库。不可以,你不能在另一台非Win

windows - 如何禁用 Windows 注册表中的剪切、复制、粘贴、重命名等操作?

我正在尝试在VB.Net中创建一个软件作为我的uni项目,以禁用Windows7电脑的以下功能。我认为必须从Windows注册表的上下文菜单中禁用它们,但我不想禁用整个上下文菜单,而是想单独禁用以下项。剪切、复制、粘贴、重命名、删除、打开、打印、共享、创建快捷方式、打开方式、发送到、新建、属性。我想为用户提供通过复选框有选择地/单独地禁用它们的选项,这样这些选项将在鼠标右键单击时被禁用。我的问题是我不知道哪个键是禁用的正确键,因为注册表太大而且一些键的名称相似。谁能帮我说说Windows注册表中上述右键单击功能的确切关键位置是什么,或者如何去做? 最佳答案

c++ - _stricmp 在字符串匹配时返回错误值。该怎么办?

我有这段代码:second=strtok(NULL,"\n");logprintf(second);if(_stricmp(second,"WINDOWS")==0)logprintf将数据打印到日志文件中,并打印“WINDOWS”(不带引号)。但是_stricmp以某种方式返回13..所以if检查永远不会通过。我尝试过使用sscanf/sprintf/其他字符串方式,但都没有用。我没主意了。完整代码:#ifdefWIN32charbuf[65535];boolfound=false;boolinstall=false;boolinstalling=false;unsignedinti

c - 我应该在项目开始时考虑 GUI 吗?

我想在C中启动一个ProcessManager项目,它应该有一个图形用户界面。这是我的第一个GUI项目,我对此一无所知。经过一些搜索,我发现我应该使用winapi32库。我的问题是:我应该像基于控制台那样编写我的项目,然后向其中添加GUI,还是应该在项目开始时考虑GUI? 最佳答案 我想说最好将应用程序编写为命令行应用程序,然后在GUI中编写包装器。通过这种方式,您可以获得最灵活的应用程序,将GUI和功能完全分离。但我不会说!:-)根据我的经验,很难将GUI从应用程序中完全分离出来,因此您应该在构建它时考虑到GUI。您的代码必须打开